<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>

<body>
  <script>
    // 5 构造函数法(类) 创建对象
    // js中没有明确的类 构造函数就是 对象的抽象
    // 构造函数 的写法 推荐 函数名首字母大写
    //属性和方法 都写在this上
    // 属性写在构造内部  方法写在原型上 
    function Person(name, country, sex) {
      this.name = name;
      this.country = country;
      this.sex = sex;
      this.eat = function () { }
      this.say = function () {
        alert(this.name)
      }
    }

    // 构造函数 的属性和方法  可以写在原型
    // 原型(prototype)是每个函数都有的属性 可以添加属性和方法
    // Person.prototype = {
    //   eye: 2,
    //   sleep: function () { }
    // }
    Person.prototype.eye = 2;
    Person.prototype.sleep = function () {
      alert("睡觉")
    }

    var te = new Person("特朗普", "美国", "男");
    var aobama = new Person("奥巴马", "美国华盛顿", "男");
    console.log(te)
    te.sleep()



  </script>
</body>

</html>